package com.java.jvm;

/**
 * @author wangning
 * @date 2023/5/17 10:37
 * 在Java中，可作为GCRoots的对象有：
 * 1.虚拟机栈（栈帧中的本地变量表）中引用的对象
 * 2.方法区中的类静态属性引用的对象
 * 3.方法区中常量引用的对象
 * 4.本地方法栈中JNI（即一般说的Native方法）中引用的对象
 * Java Native Interface
 */
public class GCRootsDemo {

    private byte[] byteArray = new byte[100 * 1024 * 1024];//虚拟机栈中

    private static GCRootsDemo t2;//静态属性

    private static final GCRootsDemo t3 = new GCRootsDemo();//常量

    public static void m1() {
        GCRootsDemo t1 = new GCRootsDemo();
        System.gc();
        System.out.println("第一次GC完成");

    }

    public static void main(String[] args) {
        m1();
    }

}






















